//
//  MFAExceptionQueue.h
//  NewMissFresh
//
//  Created by 董宝君 on 2019/6/19.
//  Copyright © 2019 com.missfresh. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/**
 内部异常存取的消息队列 （这里面异常不用上报，属于监控组件层面的异常）
 */
@interface MFAExceptionQueue : NSObject

/**
 根据传入的路径初始化数据存储
 
 @param filePath 传入的文件路径
 @return 初始化后的实例
 */
- (instancetype)initWithFilePath:(NSString *)filePath;


/**
 想队列中添加数据
 
 @param message 添加的消息数据
 @param type 添加的消息数据类型
 */
- (void)addMessage:(NSString *)message type:(NSString *)type;


/**
 从消息队列的最前端，获取指定数目的消息记录，获取的消息记录已字符串的形式存放在数组中
 
 @param size 消息条数
 @param type 消息类型
 @return 查询到的消息数组
 */
- (NSArray <NSString *> *)loadMessageFromHeadWithMessageSize:(NSUInteger)size type:(NSString *)type;


/**
 从消息队列的最前端删除指定数量的记录
 
 @param size 删除记录的数量
 @param type 删除数据的类型
 @return 删除是否成功
 */
- (BOOL)removeMessageFromHeadWithMessageSize:(NSUInteger)size type:(NSString *)type;


/**
 删除消息队列所有数据
 */
- (void)deleteAllMessage;


/**
 获取当前的消息数量
 
 @return 消息数量
 */
- (NSInteger)messageCount;


/**
 优化数据库文件的碎片化数据的空间
 
 @return 是否成功
 */
- (BOOL)vacuum;

@end

NS_ASSUME_NONNULL_END
